package com.mylife.schedule.service;

import com.mylife.pojo.Result;
import com.mylife.schedule.vo.NowScheduleVO;
import com.mylife.schedule.vo.params.ScheduleParams;
import com.mylife.schedule.vo.ScheduleVo;

import java.util.List;

/**
 * 计划本Service
 * @author blueCat
 * @since 2022/3/5
 */
public interface ScheduleService {

    /**
     * 查询正在进行的计划
     * @param params
     * @return
     */
    NowScheduleVO queryNowSchedule(ScheduleParams params);

    /**
     * 查询全部计划类型
     * @return
     */
    List<String> queryScheduleType();

    /**
     * 新增计划
     * @param params
     * @return
     */
    Result addSchedule(ScheduleParams params);

    /**
     * 查询计划
     * @param params
     * @return
     */
    List<ScheduleVo> querySchedules(ScheduleParams params);

    /**
     * 删除计划
     * @param id
     * @return
     */
    Result deleteSchedule(Integer id);

    /**
     * 改变完成状态
     * @param id
     * @param isFinish
     * @return
     */
    Result changeFinishStatus(Integer id, Integer isFinish);

    /**
     * 查询单条计划
     * @param id
     * @return
     */
    ScheduleVo queryOneSchedule(Integer id);

    /**
     * 修改计划
     * @param params
     * @return
     */
    Result updateSchedule(ScheduleParams params);

    /**
     * 增加计划类型
     * @param scheduleType
     * @return
     */
    Result addScheduleType(String scheduleType);

    /**
     * 统计计划内容
     * @param params
     * @return
     */
    List<ScheduleVo> queryCountSchedule(ScheduleParams params);
}
